The increased speed of computers today and the increased complexity of the associated memory system requires increased performance, flexibility, automation, and testing ability in the system memory decoder. A memory system coupled to a typical computer system may have numerous system memory configurations of different size memory devices and a variety of memory attribute information including attributes associated with a central processing unit (CPU) internal cache, attributes associated with a CPU external cache, attributes associated with the write protection of particular segments of memory within the memory system, and a memory map for associating memory addresses with physical locations within the memory system. Other types of memory configuration information may be significant in other computer systems or as a particular computer system increases in complexity.
Many prior art computer systems use switches or jumpers to define memory size, location, or other memory attributes. Clearly, switches or jumpers retain memory attribute definition even though the computer system loses power; however, switches and jumpers are inconvenient to configure and cannot be automatically configured. Further, configuring switches or jumpers typically requires access to a circuit board inside the computer system.
Other computer systems dynamically determine their memory system configurations on power up initialization of the computer system. As memory systems get more complex, however, this procedure can be very time consuming. Other computer systems employ a non-volatile memory device for retaining memory configuration information. In this way, a manufacturer or user of the computer system does not need to manipulate a set of switches or jumpers and the computer system does not need to dynamically determine its configuration at power up initialization. Further, during normal operations of the computer system, the non-volatile memory configuration information can be rapidly accessed and used by the memory decoder or memory controller. Non-volatile memory, however, is not easily modified when the memory configuration of the computer system changes. Typically, the non-volatile memory device must be removed from a circuit board of the computer system and replaced with a non-volatile memory device containing an updated version of the memory configuration information. This replacement of a non-volatile memory device is time consuming, expensive, and likely to introduce other problems during the manipulation of the circuit board. Further, the non-volatile memory configuration information cannot be modified by the processing logic during operation of the computer system. Prior art systems do not provide a means for reading and verifying the content of a memory configuration storage means.
A better method is needed for storing, manipulating, and verifying memory configuration information in a computer system.